// 1. 导入fs模块
const fs = require('fs');
const path = require('path');
// 2.定义变量并保存一个promise实例对象
// excutor函数、执行器函数
    // resolve函数
    // reject函数
let p1 = new Promise((resolve,reject)=>{
    // reslove 成功// reject 失败
    // console.log(__dirname+'../10-fs文件读取异步方法.js');
    // console.log(path.resolve(__dirname,'../10-fs文件读取异步方法.js'));
    // 读取文件代码
    fs.readFile(__dirname+'./10-fs文件读取异步方法.js',(err,data)=>{
        if(err){
            reject(err)
        }else{
            resolve(data)
        }
    })
    // resolve()
    // reject()
});
// 当xxx的时候
// then(success)
// then(successFn,failFn)
p1.then((value)=>{
    //成功时执行
    console.log(value);
    console.log(value.toString());
},(reason)=>{
    // 失败时执行
    console.log('失败打印',reason);
})

    // 2. 调用读取文件方法 fs.readFile(url,cb)
    // 2.1 url : 文件路径
    // 2.2 cb(err,data): 回调函数
        // 2.2.1 err 错误对象信息
        // 2.2.2 data 读取的数据 buffer数据
            // 2.2.2.1 toString() 转成字符串
        // 2.2.3 判断err对象是否存在
            // 2.2.3.1 如果存在，调用promise内的reject(err)
            // 2.2.3.2 如果不存在，调用promise内的resolve(data)

// 3. 调用promise实例的then方法
    // 3.1 传入resolve/reject 这2个回调函数
    // 3.2 resolve/reject函数接收从执行器函数传入的参数

